/*****************************************************
 * Mp3Player BeagleBoard                             *
 * Introduccion a Sistemas Embebidos                 *
 *****************************************************
 * Cristian Brenes Quiros                            *
 * Alejandro Morales Araya                           *
 * Pedro Rojas Barrett                               *
 *****************************************************
 * Funcion principal de interfaz                     *
 * Aqui se realiza toda la comunicacion entre botones*
 * y las funciones a realizar por el reproductor     *
 *****************************************************/

#include "mp3playerbbxm.h"
#include "ui_mp3playerbbxm.h"
#include "pipeReproductorLocal.h"
#include "pipeServidor.h"
#include "listar.h"
#include "QFileDialog"
#include "qfiledialog.h"
#include <gst/gst.h>
#include <glib.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <QLine>
#include <QLineEdit>
#include <QHBoxLayout>

QString cancion;
QByteArray ba;
int rep;


Mp3PlayerBBxM::Mp3PlayerBBxM(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Mp3PlayerBBxM)
{
    ui->setupUi(this);
}

Mp3PlayerBBxM::~Mp3PlayerBBxM()
{
    delete ui;
}

/* Reproduce el archivo seleccionado*/
void Mp3PlayerBBxM::on_BotonPlay_clicked()
{
    rep = 1;
    ui->label->setText(cancion);
    ui->label2->setText("Reproduciendo");
    char * a[1];
    QByteArray ah = cancion.toUtf8();
    char * ag = ah.data();
    a[0] = ag;   // añadir directorio de cancion para que la reproduzca
    reproducir(a);
}

/* Inicia el stream del archivo seleccionado */
void Mp3PlayerBBxM::on_BotonEnviar_clicked()
{
    rep = 2;
    ui->label->setText(cancion);
    ui->label2->setText("Enviando");
    char * a[1];
    QByteArray ah = cancion.toUtf8();
    char * ag = ah.data();
    a[0] = ag;   // añadir directorio de cancion para que la envie
    servidor(a);
}


/* Detiene la reproduccion/streaming actual */
void Mp3PlayerBBxM::on_botonparar_clicked()
{
    if(rep == 1){
        parar();
        ui->label2->setText("Detenido");
    }
    if(rep == 2){
        pararS();
        ui->label2->setText("Detenido");
    }
    else
        ui->label2->setText("Sin accion");
}

/* Se carga la direccion del .mp3 a utilizar */
void Mp3PlayerBBxM::on_BotonCargar_clicked()
{
    cancion = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                         "/home/cristian",
                                                         tr("MP3 (*.mp3)"));
    ui->label->setText(cancion);
}

